/**
 * 
 */
package impresor.etiquetas.model;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.ForeignKey;
import org.hibernate.annotations.Type;

/**
 * @author Pablo Moreno
 * 
 */
@Entity
@Table(name = "TBL_Caja", catalog = "matrix")
public class Caja implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "CajId")
    private long idCaja;

    @Column(name = "CliId")
    private long idCliente;

    @Column(name = "CliNemotecnico")
    private String nemotecnicoCliente;

    @Column(name = "DepId")
    private long idDepartamento;

    @Column(name = "DepNemotecnico")
    private String nemotecnicoDepartamento;

    @Column(name = "AreId")
    private long idArea;

    @Column(name = "AreNemotecnico")
    private String nemotecnicoArea;

    @Column(name = "CajNroCajaBox")
    private long nroCajaBox;

    @Column(name = "CajNroCajaCliente")
    private int nroCajaCliente;

    @ManyToOne
    @JoinColumn(name = "StaId")
    private Estado estado;

    @ManyToOne
    @JoinColumn(name = "TipKitId")
    @ForeignKey(name = "FK_TBL_Caja_TBL_TipoKit")
    private TipoKit tipoKit;

    @Column(name = "SucId")
    private Integer sucursal;

    @Column(name = "DepoId")
    private Integer deposito;

    @Column(name = "UbiId")
    private long ubicacion;

    @Column(name = "CajUbicacionFecha")
    private Date fechaUbicacion;

    @Column(name = "UserLoginId")
    private long idUsuario;

    @Column(name = "DateAdded")
    private Date fechaAlta;

    @Column(name = "IsDeleted", columnDefinition = "TINYINT")
    @Type(type = "org.hibernate.type.NumericBooleanType")
    private boolean eliminado;

    /**
     * @return the idCaja
     */
    public long getIdCaja() {
	return idCaja;
    }

    /**
     * @param idCaja
     *            the idCaja to set
     */
    public void setIdCaja(long idCaja) {
	this.idCaja = idCaja;
    }

    /**
     * @return the idCliente
     */
    public long getIdCliente() {
	return idCliente;
    }

    /**
     * @param idCliente
     *            the idCliente to set
     */
    public void setIdCliente(long idCliente) {
	this.idCliente = idCliente;
    }

    /**
     * @return the nemotecnicoCliente
     */
    public String getNemotecnicoCliente() {
	return nemotecnicoCliente;
    }

    /**
     * @param nemotecnicoCliente
     *            the nemotecnicoCliente to set
     */
    public void setNemotecnicoCliente(String nemotecnicoCliente) {
	this.nemotecnicoCliente = nemotecnicoCliente;
    }

    /**
     * @return the idDepartamento
     */
    public long getIdDepartamento() {
	return idDepartamento;
    }

    /**
     * @param idDepartamento
     *            the idDepartamento to set
     */
    public void setIdDepartamento(long idDepartamento) {
	this.idDepartamento = idDepartamento;
    }

    /**
     * @return the nemotecnicoDepartamento
     */
    public String getNemotecnicoDepartamento() {
	return nemotecnicoDepartamento;
    }

    /**
     * @param nemotecnicoDepartamento
     *            the nemotecnicoDepartamento to set
     */
    public void setNemotecnicoDepartamento(String nemotecnicoDepartamento) {
	this.nemotecnicoDepartamento = nemotecnicoDepartamento;
    }

    /**
     * @return the idArea
     */
    public long getIdArea() {
	return idArea;
    }

    /**
     * @param idArea
     *            the idArea to set
     */
    public void setIdArea(long idArea) {
	this.idArea = idArea;
    }

    /**
     * @return the nemotecnicoArea
     */
    public String getNemotecnicoArea() {
	return nemotecnicoArea;
    }

    /**
     * @param nemotecnicoArea
     *            the nemotecnicoArea to set
     */
    public void setNemotecnicoArea(String nemotecnicoArea) {
	this.nemotecnicoArea = nemotecnicoArea;
    }

    /**
     * @return the nroCajaBox
     */
    public long getNroCajaBox() {
	return nroCajaBox;
    }

    /**
     * @param nroCajaBox
     *            the nroCajaBox to set
     */
    public void setNroCajaBox(long nroCajaBox) {
	this.nroCajaBox = nroCajaBox;
    }

    /**
     * @return the nroCajaCliente
     */
    public int getNroCajaCliente() {
	return nroCajaCliente;
    }

    /**
     * @param nroCajaCliente
     *            the nroCajaCliente to set
     */
    public void setNroCajaCliente(int nroCajaCliente) {
	this.nroCajaCliente = nroCajaCliente;
    }

    /**
     * @return the estado
     */
    public Estado getEstado() {
	return estado;
    }

    /**
     * @param estado
     *            the estado to set
     */
    public void setEstado(Estado estado) {
	this.estado = estado;
    }

    /**
     * @return the tipoKit
     */
    public TipoKit getTipoKit() {
	return tipoKit;
    }

    /**
     * @param tipoKit
     *            the tipoKit to set
     */
    public void setTipoKit(TipoKit tipoKit) {
	this.tipoKit = tipoKit;
    }

    /**
     * @return the sucursal
     */
    public Integer getSucursal() {
	return sucursal;
    }

    /**
     * @param sucursal
     *            the sucursal to set
     */
    public void setSucursal(Integer sucursal) {
	this.sucursal = sucursal;
    }

    /**
     * @return the deposito
     */
    public Integer getDeposito() {
	return deposito;
    }

    /**
     * @param deposito
     *            the deposito to set
     */
    public void setDeposito(Integer deposito) {
	this.deposito = deposito;
    }

    /**
     * @return the ubicacion
     */
    public long getUbicacion() {
	return ubicacion;
    }

    /**
     * @param ubicacion
     *            the ubicacion to set
     */
    public void setUbicacion(long ubicacion) {
	this.ubicacion = ubicacion;
    }

    /**
     * @return the fechaUbicacion
     */
    public Date getFechaUbicacion() {
	return fechaUbicacion;
    }

    /**
     * @param fechaUbicacion
     *            the fechaUbicacion to set
     */
    public void setFechaUbicacion(Date fechaUbicacion) {
	this.fechaUbicacion = fechaUbicacion;
    }

    /**
     * @return the idUsuario
     */
    public long getIdUsuario() {
	return idUsuario;
    }

    /**
     * @param idUsuario
     *            the idUsuario to set
     */
    public void setIdUsuario(long idUsuario) {
	this.idUsuario = idUsuario;
    }

    /**
     * @return the fechaAlta
     */
    public Date getFechaAlta() {
	return fechaAlta;
    }

    /**
     * @param fechaAlta
     *            the fechaAlta to set
     */
    public void setFechaAlta(Date fechaAlta) {
	this.fechaAlta = fechaAlta;
    }

    /**
     * @return the eliminado
     */
    public boolean isEliminado() {
	return eliminado;
    }

    /**
     * @param eliminado
     *            the eliminado to set
     */
    public void setEliminado(boolean eliminado) {
	this.eliminado = eliminado;
    }

}
